This analysis focuses on binary outcome data meta-analysis using the
R meta package.
library(meta)
library(readxl)
The entire dataset was converted into a dataframe format for easier handling and compatibility with the R example analysis. The dataframe structure allows seamless data manipulation and analysis using R’s built-in functions and packages.
## Author Year event.e n.e event.c n.c p2y12_type
## 1 Almendro-Delia et al. 2015 188 3973 116 2076 Clopidogrel
## 2 ATLANTIC Trial 2014 30 906 19 952 Ticagrelor
## 3 Danchin et al. 2018 9 360 18 360 Clopidogrel
## 4 Load&Go Trial 2013 2 56 0 56 Clopidogrel
## 5 CIPAMI Trial 2012 1 164 4 171 Clopidogrel
## 6 Fabris et al. 2022 17 237 17 300 Clopidogrel
## 7 Postma et al. 2014 46 1345 35 1096 Clopidogrel
## 8 Dorler et al. 2011 55 1635 110 1076 Clopidogrel
## 9 Lupi et al. 2016 5 143 13 143 Ticagrelor
## 10 Redfors et al. 2019 1960 37840 528 6964 Clopidogrel
## 11 Yudi et al. 2018 25 892 96 1915 Clopidogrel
## 12 Alexander et al. 2008 12 1029 55 2756 Ticagrelor
## 13 Fefer et al. 2009 12 217 6 166 Clopidogrel
## 14 Lev et al. 2008 1 165 2 127 Clopidogrel
## overal_risk_of_bias pretreatment _timing %_HTN
## 1 Serious-risk of Bias Pre-hospital 30.0
## 2 Low-risk of Bias Pre-hospital 28.8
## 3 Low-risk of Bias Pre-hospital 25.9
## 4 Moderate-risk of Bias Pre-hospital 52.3
## 5 Low-risk of Bias Pre-hospital 49.8
## 6 Moderate-risk of Bias Pre-hospital 30.5
## 7 Serious-risk of Bias Pre-hospital 20.3
## 8 Moderate-risk of Bias Pre-hospital 40.1
## 9 Serious-risk of Bias Pre-hospital 60.6
## 10 Moderate-risk of Bias Pre-hospital 40.5
## 11 Moderate-risk of Bias Pre-hospital 43.4
## 12 Serious-risk of Bias In-hospital 61.4
## 13 Serious-risk of Bias In-hospital 32.6
## 14 Serious-risk of Bias In-hospital 70.1
To perform the meta-analysis of binary outcome data we will use the
metabin() function from the meta package. We
need to provide some instructions for the metabin()
function. These instructions are known as arguments, which can be one,
two, three, or more inputs that the function uses to perform its task.
The main arguments of the metabin() function are:
m.acm <- metabin(event.e, n.e, event.c, n.c,
data = ma$acm,
method = "MH",
method.tau = "DL",
sm = "RR",
studlab = Author)
To visualize the results of a meta-analysis conducted with the
metabin() function, we will use the summary()
function. It will generate a summary of the analysis:
summary(m.acm)
## RR 95%-CI %W(common) %W(random)
## Almendro-Delia et al. 0.8469 [0.6761; 1.0608] 11.0 13.0
## ATLANTIC Trial 1.6591 [0.9407; 2.9262] 1.3 8.3
## Danchin et al. 0.5000 [0.2277; 1.0981] 1.3 5.9
## Load&Go Trial 5.0000 [0.2455; 101.8321] 0.0 0.6
## CIPAMI Trial 0.2607 [0.0294; 2.3078] 0.3 1.2
## Fabris et al. 1.2658 [0.6606; 2.4255] 1.1 7.3
## Postma et al. 1.0710 [0.6951; 1.6502] 2.8 10.1
## Dorler et al. 0.3291 [0.2403; 0.4506] 9.6 11.8
## Lupi et al. 0.3846 [0.1408; 1.0508] 0.9 4.3
## Redfors et al. 0.6832 [0.6227; 0.7495] 64.4 14.2
## Yudi et al. 0.5591 [0.3626; 0.8619] 4.4 10.1
## Alexander et al. 0.5844 [0.3142; 1.0867] 2.2 7.6
## Fefer et al. 1.5300 [0.5864; 3.9914] 0.5 4.6
## Lev et al. 0.3848 [0.0353; 4.1970] 0.2 1.0
##
## Number of studies: k = 14
## Number of observations: o = 67120 (o.e = 48962, o.c = 18158)
## Number of events: e = 3382
##
## RR 95%-CI z p-value
## Common effect model 0.6887 [0.6380; 0.7433] -9.57 < 0.0001
## Random effects model 0.7274 [0.5673; 0.9327] -2.51 0.0121
##
## Quantifying heterogeneity:
## tau^2 = 0.1108; tau = 0.3328; I^2 = 73.7% [55.4%; 84.5%]; H = 1.95 [1.50; 2.54]
##
## Test of heterogeneity:
## Q d.f. p-value
## 49.46 13 < 0.0001
##
## Details on meta-analytical method:
## - Mantel-Haenszel method (common effect model)
## - Inverse variance method (random effects model)
## - DerSimonian-Laird estimator for tau^2
## - Mantel-Haenszel estimator used in calculation of Q and tau^2 (like RevMan 5)
## - Continuity correction of 0.5 in studies with zero cell frequencies
To create the forest plot, we will use the forest()
function. Alongside this function, we will include specific arguments to
customize the appearance and content of the forest plot, such as labels,
confidence interval formatting, and display options. These arguments
ensure the plot is clear, informative, and tailored to the dataset being
analyzed.
forest(m.acm,
smlab = "All-cause Mortality",
layout = "Revman5",
sortvar = TE,
lab.e = "Experimental", label.left = "Favors Experimental",
lab.c = "Control", label.right = "Favors Control",
ff.lr = "bold",
leftcols = c("studlab", "Year","event.e", "n.e", "event.c", "n.c", "w.random", "effect", "ci" ) ,
leftlabs = c("Studies", "Year", NA, NA, NA, NA, NA, NA, NA),
text.random = "Random effects model",
random = TRUE,
common = FALSE,
test.overall.random = TRUE,
rightcols = FALSE,
colgap = "3mm",
fs.heading = 12,
fs.study = 12,
fs.hetstat = 10,
digits = 2,
digits.pval = 2,
pooled.events = TRUE,
pooled.totals = TRUE,
col.square="darkcyan", col.square.lines="black",
prediction = TRUE, col.predict = "#CEF2EE",col.predict.lines = "black", ff.predict = 1)